#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project ：PythonData 
@File    ：ACMData.py
@Author  ：朱志文
@Date    ：2021/11/18 8:00 
'''

'''
题目描述
输入10个整数存入一维数组，再按逆序重新存放后再输出。

输入
输入包括一行。10个以空格格开的整数。

输出
逆序的10个整数，整数以空格格开。'''

# list1 = list(map(int, input().split()))
# flag = True;
# for i in list1[::-1]:
#     if flag:
#         flag = False
#     else:
#         print(end=' ')
#     print(i, end='')

'''
题目描述
输入一组数据（整数，不多于20个），逆序输出这组数据。

输入
正整数N（1≤N≤20)，之后是N个整数。

输出
输入数据的逆序，2个数之间空一格。'''

# list1 = list(map(int, input().split()))
# N = list1[0]
# del list1[:1]
# if N == len(list1):
#     listReverse = list1[::-1]
#     flag = True;
#     for i in listReverse:
#         if flag:
#             flag = False;
#         else:
#             print(end=' ')
#         print(i, end='')


'''下面是计算机经典书籍的价目表。给定每种图书购买的数量，编程计算应付的总费用。
输入
 输入一行，包含16个整数(大于等于0，小于等于100)，分别表示购买的《计算机导论》、《网页程序设计》、《高等数学》、《程序设计基础》、《面向对象程序设计》、《电子技术基础》、《计算机网络》、《工程数学》、《离散数学》、《数据结构与算法》、《单片机原理与应用》、《数据库技术》、《软件工程》、《编译原理》、《操作系统》、
 《计算机组成原理》的数量（以本为单位）。每两个整数用一个空格分开。

输出
输出一行，包含一个浮点数f，表示应付的总费用。精确到小数点后一位。'''
# listBook = [28.1, 54.5, 46.6, 37.1, 38, 46.7, 70.7, 21.8, 31.4, 27.6, 39.3, 37.1, 56.7, 70.3, 72.7, 40.7]
# listNum = list(map(int, input().split()))
# sum = 0;
# for i in range(len(listNum)):
#     sum = sum + listBook[i] * listNum[i]
# print('%.1f' % sum)


'''
题目描述
输入一组数据（整数，不多于20个），查找指定的数据项是否存在。

输入
第1个数据n，表示后面有n个数据，最后一个数据表示要查找的数据。

输出
如果找到要查的数据，则输出Yes

否则输出No
'''
# listValue = list(map(int, input().split()))
# n = listValue[0]
# findValue=listValue[len(listValue)-1]
# del listValue[:1]
# del listValue[-1:]
# if n == len(listValue):
#     if findValue in listValue:
#         print('Yes')
#     else:
#         print('No')

'''题目描述
计算机2017级有n（n为整数，并且5≤n≤200）名学生，已知n名同学的考试成绩x（x为整数，并且0≤x≤100），求恰好等于给定成绩的学生人数。

输入
输入有3行，第1行为学生人数n（n为整数，并且5≤n≤200）。
第2行为这n名学生的成绩x（x为整数，并且0≤x≤100），2个成绩之间用空格隔开。
第3行包含一个整数，为指定的成绩m。

输出
输出恰好等于给定成绩的学生人数。'''

# n = int(input())
# x = list(map(int, input().split()))
# m = int(input())
# if n == len(x):
#     count = 0;
#     for i in x:
#         if i == m:
#             count += 1;
#     print(count)


'''
题目描述
2017级程序设计期末考试结束了，大家都急切的想知道自己的成绩。而辅导员王老师比较关心班上学生前三名的成绩。你能帮王老师在这些成绩中快速找到吗？

输入
第1行n(n>=5 并且 n<=100)，表示下面有n个成绩（可能为小数）

输出
前3名的成绩，成绩之间用1个空格隔开，小数点后面保留1位。
'''
# n = int(input())
# listScore = list(map(eval, input().split()))
# if n == len(listScore):
#     listScoreDesc = sorted(listScore, reverse=True)
#     flag = True;
#     for i in range(3):
#         if flag:
#             flag = False
#         else:
#             print(end=' ')
#         print('%.1f' % listScoreDesc[i], end='')


'''
题目描述
输入一个十进制数N（32位整数），将它转换成二进制数输出.
输入
输入数据包含多个测试实例，每个测试实例包含1个整数N(32位整数)。
输出
输出转换后的数，每个输出占1行。'''

while True:
    try:
        N = eval(input())
        NConversion = str(bin(N))
        if N > 0:
            NConversion = NConversion[2:]
            print(NConversion)
        else:
            NConversion = NConversion[3:]
            print('-' + NConversion)
    except:
        break
